import { type ResType } from '@ac/types';
import { fetch } from '@ac/utils';
import qs from 'qs';

// 定义登录请求的响应类型
export interface IMaterialInfoResponse {
	doc_id: string;
	web_site?: string;
	web_name?: string;
	web_url?: string;
	title?: string;
	chinese_title?: string;
	description?: string;
	chinese_description?: string;
	update_time?: string;
	tags?: string;
	source_content?: string;
	chinese_content?: string;
	abstract_text?: string;
	chinese_abstract?: string;
}

export interface IMaterialListParams {
	id?: string;
	titleKey?: string;
	tagKey?: string;
	pageSize: number;
	pageNum: number;
}

// 查询选题素材列表
export const getTopicMaterialPage = (data: IMaterialListParams) => {
	// post<T> 的泛型 T 指定了成功时返回的数据 data 的类型
	return fetch.post<ResType<IMaterialInfoResponse[]>>('/topic/queryChosenMaterials', data);
};

// 查询所有素材列表
export const getAllMaterialPage = (data: IMaterialListParams) => {
	// post<T> 的泛型 T 指定了成功时返回的数据 data 的类型
	return fetch.post<ResType<IMaterialInfoResponse[]>>('/materials/queryMaterials', data);
};

// 删除素材
export const deleteMaterial = (data: { id: string }) => {
	// post<T> 的泛型 T 指定了成功时返回的数据 data 的类型
	return fetch.post<string>('/material/delete', qs.stringify(data));
};

// 获取素材详情
export const getMaterialDetail = (params: { docId: string; webSite: string }) => {
	// post<T> 的泛型 T 指定了成功时返回的数据 data 的类型
	return fetch.get<ResType<IMaterialInfoResponse>>('/materials/queryDetail', params);
};
